﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;

namespace workflowMVC.Models
{
    public class StudentDetailModel
    {
        public StudentDetailModel()
        {
            Logs = new List<string>();
        }
        [Display(Name = "Nhật Ký hoạt động")]
        public List<string> Logs { get; set; }

        [Required(ErrorMessage = "Tên Sinh Viên không được trống")]
        [Display(Name = "Tên Sinh Viên")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Mã Số Sinh Viên không được trống")]
        [Display(Name = "Mã Số Sinh Viên")]
        public string NumCode { get; set; }

        [Required(ErrorMessage = "Email không được trống")]
        [DataType(DataType.EmailAddress, ErrorMessage = "Định dạng Email sai quy cách")]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Ngày sinh không được trống")]
        [Display(Name = "Ngày sinh")]
        public DateTime DoB { get; set; }

        [Required(ErrorMessage = "Địa chỉ không được trống")]
        [Display(Name = "Địa chỉ")]
        public string Address { get; set; }

        [Required(ErrorMessage = "Lớp không được trống")]
        [Display(Name = "Lớp")]
        public string Class { get; set; }

        [Required(ErrorMessage = "Khóa học không được trống")]
        [Display(Name = "Khóa học")]
        public int StartYear { get; set; }

        [Required(ErrorMessage = "Thời gian Khóa học không được trống")]
        [Display(Name = "Thời gian khóa học")]
        public string TimeLast { get; set; }

        [Required(ErrorMessage = "Hệ đào tạo không được trống")]
        [Display(Name = "Hệ đào tạo")]
        public string EduMode { get; set; }

        public bool IsApprove { get; set; }
    }

    public class ListStudentModel
    {
        public string NumCode { get; set; }
        public string Name { get; set; }
        public string Class { get; set; }
        public string Department { get; set; }
        public bool IsApproved { get; set; }
        public string Action { get; set; }
        
    }

    public class ChangePasswordModel
    {
        [Required(ErrorMessage="Không được trống")]
        [DataType(DataType.Password)]
        [Display(Name = "Mật khẩu hiện tại")]
        public string OldPassword { get; set; }

        [Required(ErrorMessage = "Không được trống")]
        [StringLength(100, ErrorMessage = "Mật khẩu phải dài tối thiểu {2} ký tự", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Mật khẩu mới")]
        public string NewPassword { get; set; }

        [Required(ErrorMessage = "Không được trống")]
        [DataType(DataType.Password)]
        [Display(Name = "Xác nhận mật khẩu")]
        [Compare("NewPassword", ErrorMessage = "mật khẩu xác nhận và mật khẩu mới không được khác nhau")]
        public string ConfirmPassword { get; set; }
    }

    public class LogOnModel
    {
        [Required(ErrorMessage="Tài Khoản không được trống")]
        [Display(Name = "Tài khoản")]
        public string UserName { get; set; }

        [Required(ErrorMessage = "Mật khẩu không được trống")]
        [DataType(DataType.Password)]
        [Display(Name = "Mật Khẩu")]
        public string Password { get; set; }

        [Display(Name = "Ghi nhớ?")]
        public bool RememberMe { get; set; }
    }

    public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email address")]
        public string Email { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }

    public class StudentModel
    {
        [Required(ErrorMessage="Tên Sinh Viên không được trống")]
        [Display(Name = "Tên Sinh Viên")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Mã Số Sinh Viên không được trống")]
        [Display(Name = "Mã Số Sinh Viên")]
        public string NumCode { get; set; }

        [Required(ErrorMessage = "Email không được trống")]
        [DataType(DataType.EmailAddress,ErrorMessage="Định dạng Email sai quy cách")]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Ngày sinh không được trống")]
        [Display(Name = "Ngày sinh")]
        public DateTime DoB { get; set; }

        [Required(ErrorMessage = "Địa chỉ không được trống")]
        [Display(Name = "Địa chỉ")]
        public string Address { get; set; }

        [Required(ErrorMessage = "Lớp không được trống")]
        [Display(Name = "Lớp")]
        public string Class { get; set; }

        [Required(ErrorMessage = "Khóa học không được trống")]
        [Display(Name = "Khóa học")]
        public int StartYear { get; set; }

        [Required(ErrorMessage = "Thời gian Khóa học không được trống")]
        [Display(Name = "Thời gian khóa học")]
        public byte TimeLast { get; set; }

        [Required(ErrorMessage = "Hệ đào tạo không được trống")]
        [Display(Name = "Hệ đào tạo")]
        public byte EduMode { get; set; }


    }

    
}
